home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-05-29 | 6.0 KB | 170 lines | [TEXT/pdos] |
- Apple II
- Technical Notes
- _____________________________________________________________________________
- Developer Technical Support
-
-
- Apple IIgs
- #76: Miscellaneous Resource Formats
-
- Revised by: C.K. Haun May 1990
- Written by: Llew Roberts & Dave Lyons January 1990
-
- This Technical Note describes resource structure formats for previously-
- unpublished types.
- Changes since January 1990: Added $C001, the rRectList type.
- _____________________________________________________________________________
-
-
- Sampled Sound Resource (ID: $8024)
-
- The following describes the Sampled Sound resource format. It consists of a
- ten-byte header followed by the sample data bytes. The format is similar to
- that used in File Type Notes, where the offsets, given in the form (+xxx),
- determine the offset from the beginning of the resource.
-
- Format (+000) Word This must always be zero.
- Wave Size (+002) Word Sample size in pages (256
- bytes per page). For example, an 8K
- sample takes 32 pages; a 128K sample
- requires 200 pages.
- Rel Pitch (+004) Word The high byte of this word is
- a semitone value; the low byte is a
- fractional semitone. These values
- are used to tune the sample to
- correct pitch.
- Stereo (+006) Word The output channel for this
- sound is in the low nibble of this
- word.
- Sample rate (+008) Word The sampling rate of the
- sound, in Hertz (Hz).
- Sound (+010) Bytes The sampled sound data.
- The bytes are all 8-bit samples.
- The sample starts here and continues
- until the end of the resource.
-
- The resource compiler template is as follows:
-
- #define rSoundSample $8024
-
- /*---------------------- rSoundSample --------------------*/
- type rSoundSample {
- integer; /* format */
- integer; /* wave size */
- integer; /* rel pitch */
- integer; /* stereo channel */
- integer; /* sample rate */
- wide array {
- hex byte; /* raw 8 bit sound data */
- };
- };
-
-
- Cursor Resource (ID: $8027)
-
- The following describes the Cursor resource format:
-
- height (+000) Word The height of the cursor, in
- pixels.
- width (+002) Word The width of the cursor, in
- Words.
- image (+004) Bytes The image of the cursor.
- There are height*width Words in the
- cursor, or twice that many Bytes.
-
- We will call the first byte beyond the image offset "ei" for "end
- of image."
-
- mask (+ei) Bytes The mask of the cursor. This is the
- same size as the image.
-
- We will call the first byte beyond the mask offset "em" for "end
- of mask."
-
- hotSpotY (+em) Word The cursor's Y "hot spot."
- hotSpotX (+em+2) Word The cursor's X "hot spot."
- flags (+em+4) Flag Word Cursor flags:
- Bit 7: 1 = 640 Mode, 0 = 320 Mode
- All other bits are reserved and must
- be zero.
- reserved (+em+6) 8 Bytes Reserved, must be zero.
-
- The resource compiler template is as follows:
-
- #define rCursor $8027
-
- /*---------------------- rCursor --------------------*/
- type rCursor {
- height :
- hex integer; /* height */
- width :
- hex integer; /* width in words */
- hex string[2*$$Word(height)*$$Word(width)]; /* cursor image */
- hex string[2*$$Word(height)*$$Word(width)]; /* cursor mask */
- hex integer; /* hotspot X */
- hex integer; /* hotspot Y */
- hex integer; /* flags */
- hex longint = 0; /* reserved */
- hex longint = 0; /* reserved */
- };
- };
-
-
- Following is a simple cursor example:
-
- resource rCursor(1,fixed) {
- 5, /* height */
- 2, /* width */
- $"ffff0000"
- $"f00f0000"
- $"f00f0000"
- $"f00f0000"
- $"ffff0000",
-
- $"ffff0000"
- $"ffff0000"
- $"ffff0000"
- $"ffff0000"
- $"ffff0000",
-
- 2, /* hotspot Y */
- 2, /* hotspot X */
- $80 /* 640 mode */
- };
-
- Note that the resource is marked fixed so that its handle can be dereferenced
- and passed to SetCursor.
-
-
- Rectangle List Resource (ID: $C001)
-
- The rectangle list (type rRectList) is provided to allow an extensible, easily
- modifiable collection of QuickDraw II rectangle structures. This capability
- can enhance a developer's ability to modify on-screen displays without
- recompiling an entire application. This resource also enables easier cross-
- development and parallel development for the Apple IIgs and the Macintosh.
-
- The following describes the rectangle list resource format:
-
- count (+000) Word Number of rectangles in this resource.
- firstRectangle (+002) 8 Bytes First QuickDraw II rectangle structure.
- ... Rectangles, eight bytes each.
- lastRectangle (+002+(8*(count-1)))
- 8 Bytes Last QuickDraw II rectangle structure.
-
- The resource compiler template is as follows:
-
- #define rRectList $C001
- type rRectList {
- integer = $$Countof(RectArray);
- array RectArray {
- Rect;
- };
- };
-
-
- Further Reference
- _____________________________________________________________________________
- o Apple IIGS Toolbox Reference, Volumes 2 & 3
-
-